---
title: "Transition Property"
description: "Utilities for controlling which CSS properties transition."
---

import plugin from 'tailwindcss/lib/plugins/transitionProperty'
import { Variants } from '@/components/Variants'
import { Disabling } from '@/components/Disabling'

export const classes = { plugin }

## Usage

Use the `transition-{properties}` utilities to specify which properties should transition when they change.

```html lightBlue
<template preview>
  <div class="text-center">
    <button class="transition duration-500 ease-in-out transform hover:-translate-y-1 hover:scale-110 bg-blue-600 hover:bg-red-600 text-white font-semibold py-3 px-6 rounded-md">
      Hover me
    </button>
  </div>
</template>

<button class="**transition** duration-500 ease-in-out bg-blue-600 hover:bg-red-600 transform hover:-translate-y-1 hover:scale-110 ...">
  Hover me
</button>
```

## Prefers-reduced-motion

You can conditionally apply animations and transitions using the `motion-safe` and `motion-reduce` variants:

```html
<button class="transition transform hover:-translate-y-1 **motion-reduce:transition-none motion-reduce:transform-none** ...">
  Hover me
</button>
```

**These variants are not enabled by default**, but you can enable them in the `variants` section of your `tailwind.config.js` file:

```js
// tailwind.config.js
module.exports = {
  // ...
  variants: {
    transitionProperty: ['responsive', 'motion-safe', 'motion-reduce']
  }
}
```

Learn more in the [variants documentation](/docs/hover-focus-and-other-states#motion-safe).

## Responsive

To change which properties of an element transition at a specific breakpoint, add a `{screen}:` prefix to any existing transition-property utility. For example, use `md:transition-colors` to apply the `transition-colors` utility at only medium screen sizes and above.

For more information about Tailwind's responsive design features, check out the [Responsive Design](/docs/responsive-design) documentation.

## Customizing

### Property values

By default, Tailwind provides transition-property utilities for seven common property combinations. You change, add, or remove these by customizing the `transitionProperty` section of your Tailwind theme config.

```diff-js
  // tailwind.config.js
  module.exports = {
    theme: {
      extend: {
        transitionProperty: {
+         'height': 'height',
+         'spacing': 'margin, padding',
        }
      }
    }
  }
```

Learn more about customizing the default theme in the [theme customization documentation](/docs/theme#customizing-the-default-theme).

### Variants

<Variants plugin="transitionProperty" name="transition-property" />

### Disabling

<Disabling plugin="transitionProperty" name="transition-property" />
